package com.yycx.module.bbs.provider.handler;

import com.yycx.common.base.entity.EntityMap;
import com.yycx.common.base.utils.FlymeUtils;
import com.yycx.common.enums.ColleconEnum;
import com.yycx.common.mybatis.interceptor.PageInterceptor;
import com.yycx.common.mybatis.model.PageParams;
import com.yycx.common.mybatis.model.ResultBody;
import com.yycx.common.mybatis.query.CriteriaQuery;
import com.yycx.common.security.OpenHelper;
import com.yycx.module.bbs.client.entity.BbsContent;
import com.yycx.module.system.client.entity.SysCollecon;
import org.springframework.stereotype.Component;

/**
 * 用户收藏帖子列表
 *
 * @author zyf
 */
@Component("userBbsContentScListHandler")
public class UserBbsContentScListHandler implements PageInterceptor<BbsContent> {


    @Override
    public ResultBody validate(CriteriaQuery cq, EntityMap params) {
        return ResultBody.ok();
    }

    @Override
    public void prepare(CriteriaQuery cq, PageParams pageParams, EntityMap params) {
        Long otherUserId = params.getLong("userId");
        Long userId = OpenHelper.getUserId();
        cq.addSelect("collecon_tag(2,'BbsContent',contentId," + userId + ") dzTag");
        //点赞数
        cq.addSelect("collecon_count(2,'BbsContent',contentId) dzNum");
        //收藏数
        cq.addSelect("collecon_count(1,'BbsContent',contentId) scNum");
        if (FlymeUtils.isNotEmpty(otherUserId)) {
            cq.eq(SysCollecon.class, "userId", otherUserId);
        } else {
            cq.eq(SysCollecon.class, "userId", userId);
        }
        cq.eq(SysCollecon.class, "optType", ColleconEnum.SC.getCode());
        cq.eq(SysCollecon.class, "targetEntity", "BbsContent");
        cq.createJoin(SysCollecon.class).setJoinField("targetId").setMainField("contentId");
    }
}
